package cn.iocoder.yudao.module.infra.service.base;

import cn.hutool.json.JSONObject;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.module.infra.dal.dataobject.base.DynamicTable;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;
import java.util.Map;

public interface DynamicTableService extends IService<DynamicTable> {

    DynamicTable getDateModelBySqlName(String dataSqlName);

    void saveNewDataModel(DynamicTable model);

    boolean addModelData(String newModelData, String dataSqlName, String opId);

    boolean editModelData(String newModelData, String dataSqlName, String opId);

    int deleteModelData(List<Integer> ids, String dataSqlName, String opId);

    PageResult<Map<String, Object>> getDataCols(DynamicTable model, String queryData, Integer pageNum, Integer pageSize);

    PageResult<Map<String, Object>> listXCRUDData(String dataName, JSONObject params);

    void addXCRUDData(String dataName, JSONObject params, String opId);

    void updateXCRUDData(String dataName, JSONObject params, String opId);

    void delXCRUDData(String dataName, long id, String opId);

    Map<String, Object> getXCRUDData(String dataName, long id, String opId);

}
